/******************************************************
 ** Author: Sandtanglo Toyer
 ** Description: This class will be used to create
 ** new sprite objects from a quad and pasted
 ** texture.
 ******************************************************/
#ifndef SPRITE_H
#define SPRITE_H

#include "cTextureRegion.h"

class cSprite {
	public:
		//Constructor
		cSprite();
		cSprite(char *fileName);

		//Destructor
		~cSprite();

		
		//Return the texture object
		cTexture	*getTexture();
		void		setTexture(cTexture texture);

		//Information regarding the state of the sprite visibility
		void		setVisibility(bool bIsVisible);
		bool		getVisibility();

		//Affine Transformations for the Sprite objects
		void		setTranslation(D3DXMATRIX transMat);						//Translates the sprite object on screen
		void		setRotation(D3DXMATRIX rotMat);							//Rotate the sprite object on screen
		void		setScale(D3DXMATRIX scaleMat);								//Scale the sprite object on screen

		D3DXMATRIX	getTranslation();									//Provides the sprite object's translation matrix for computation
		D3DXMATRIX	getRotation();										//Provides the sprite object's rotation matrix for computation
		D3DXMATRIX	getScale();											//Provides the sprite object's scaling matrix for computation

	private:
		//Checks to see if the sprite can be displayed
		bool					m_bIsVisible;							//Checks to see if the sprite can be seen

		//Texture Object
		cTexture				*m_pTexture;								//Texture object for manipulation

		//Affine Translation
		D3DXMATRIX				m_translation;							//Provides the information for translating the sprite to the screen
		D3DXMATRIX				m_rotation;								//Provides the information for rotating the sprite to the screen
		D3DXMATRIX				m_scale;								//Provides the information for scaling the sprite to the screen
};

#endif